import { FormSchema } from '@/components/Form'
import { dicDictList } from '@service/sys/dict'
import { SexEnum } from '@enums/system'

export interface ListItem {
  key: string
  code: string
  title: string
  description: string
  extra?: string
  avatar?: string
  color?: string
}

/** 字典查询 */
export const dictMap = await dicDictList(['sys_user_sex'])

/** 字典表 */
export const dict: any = {
  DicUserSexOptions: dictMap['sys_user_sex'],
}

/** tab的list */
export const settingList = [
  {
    key: '1',
    name: '基本设置',
    component: 'BaseSetting',
  },
  {
    key: '2',
    name: '安全设置',
    component: 'SecureSetting',
  },
  {
    key: '3',
    name: '账号绑定',
    component: 'AccountBind',
  },
  {
    key: '4',
    name: '新消息通知',
    component: 'MsgNotify',
  },
]

/** 表单数据 - 基础设置 */
export const baseSetSchemas: FormSchema[] = [
  {
    field: 'code',
    label: '用户编码',
    component: 'Input',
    dynamicDisabled: true,
    colProps: { span: 18 },
  },
  {
    field: 'userName',
    label: '账号',
    component: 'Input',
    dynamicDisabled: true,
    colProps: { span: 18 },
  },
  {
    field: 'nickName',
    label: '昵称',
    component: 'Input',
    colProps: { span: 18 },
  },
  {
    label: '用户性别',
    field: 'sex',
    component: 'Select',
    defaultValue: SexEnum.UNKNOWN,
    componentProps: {
      options: dict.DicUserSexOptions,
      showSearch: true,
      optionFilterProp: 'label',
    },
    required: true,
    colProps: { span: 18 },
  },
  {
    field: 'profile',
    label: '个人简介',
    component: 'InputTextArea',
    colProps: { span: 18 },
  },
]

/** 表单数据 - 安全设置 */
export const secureSettingList: ListItem[] = [
  {
    key: '1',
    code: 'userName',
    title: '账户账号',
    description: '当前账户账号：',
    extra: '修改',
  },
  {
    key: '2',
    code: 'password',
    title: '账户密码',
    description: '当前密码强度：',
    extra: '修改',
  },
  {
    key: '3',
    code: 'phone',
    title: '密保手机',
    description: '已绑定手机：',
    extra: '修改',
  },
  {
    key: '4',
    code: 'email',
    title: '备用邮箱',
    description: '已绑定邮箱：',
    extra: '修改',
  },
]

/** 表单数据 - 账号绑定 */
export const accountBindList: ListItem[] = [
  {
    key: '1',
    code: 'word',
    title: '绑定淘宝',
    description: '当前未绑定淘宝账号',
    extra: '绑定',
    avatar: 'ri:taobao-fill',
    color: '#ff4000',
  },
  {
    key: '2',
    code: 'word',
    title: '绑定支付宝',
    description: '当前未绑定支付宝账号',
    extra: '绑定',
    avatar: 'fa-brands:alipay',
    color: '#2eabff',
  },
  {
    key: '3',
    code: 'word',
    title: '绑定钉钉',
    description: '当前未绑定钉钉账号',
    extra: '绑定',
    avatar: 'ri:dingding-fill',
    color: '#2eabff',
  },
]

/** 表单数据 - 新消息通知 */
export const msgNotifyList: ListItem[] = [
  {
    key: '1',
    code: 'word',
    title: '账户密码',
    description: '其他用户的消息将以站内信的形式通知',
  },
  {
    key: '2',
    code: 'word',
    title: '系统消息',
    description: '系统消息将以站内信的形式通知',
  },
  {
    key: '3',
    code: 'word',
    title: '待办任务',
    description: '待办任务将以站内信的形式通知',
  },
]
